您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

固态储存装置

  • 申请号:CN201110369321.5 申请公布号: CN103123610B
  • 申请日: 2011-11-18 申请公布日: 2015-06-03
  • 申请(专利权)人: 专利代理机构: 中科专利商标代理有限责任公司
  • 分类号:G06F12/08

专利介绍

一种固态储存装置连接至主机,其包含:闪存中具有复数个区块,每一区块中具有多个页;高速缓存中包括多个快取单元,一个或多个快取单元的组成等于闪存中的一个页的大小,所述快取单元是根据快取单元的状态被分配至多个群组;其中,于第一群组中是利用第一快取连结表来代表第一群组中快闪单元之间的连结关系;于第二群组中是利用第二快取连结表来代表第二群组中快闪单元之间的连结关系;以及,控制单元,连接至主机、闪存与高速缓存,控制单元根据主机产生的写入数据暂存于高速缓存中以写入该闪存或者根据主机的要求由高速缓存中产生读取数据暂存于该高速缓存中以提供至主机。
1.一种固态储存装置,连接至一主机,其特征在于,该固态储存装置包含:一闪存,该闪存中具有复数个区块,每一该区块中具有多个页;一高速缓存以暂存从该主机或该闪存传送出的数据,包括复数个快取单元,一个或一个以上快取单元的大小等于闪存中的一个页的大小,该些快取单元是根据该些快取单元的状态被分配至复数个群组;其中,于一第一群组中是利用一第一快取连结表来代表该第一群组中快闪单元之间的连结关系;于一第二群组中是利用一第二快取连结表来代表该第二群组中快闪单元之间的连结关系;以及一控制单元,连接至该主机、该闪存与该高速缓存,该控制单元根据该主机产生的写入数据暂存于该高速缓存中以写入该闪存或者根据该主机的要求由该闪存中产生读取数据暂存于该高速缓存中以提供至该主机。
2.如权利要求1所述的固态储存装置,其中,该第一群组中的快取单元是在一自由状态,该第二群组中的快取单元是在一写入状态,当该主机产生一完整页的数据时,该控制单元由该第一群组的该第一快取连结表中取出一第一快取单元来储存该完整页的数据,并改变该第一快取单元为该写入状态且分配至该第二群组中的该第二快取连结表。
3.如权利要求2所述的固态储存装置,其中,该些群组包括一第三群组,该第三群组中的快取单元是在一需填满状态,且该第三群组中是利用一第三快取连结表来代表该第三群组中快闪单元之间的连结关系;以及,当该主机产生一个页内的部份数据时,该控制单元由该第一群组的该第一快取连结表中取出一第二快取单元来储存该一个页内的部份数据,并改变该第二快取单元为该需填满状态且分配至该第三群组中的一第三快取连结表。
4.如权利要求3所述的固态储存装置,其中,该些群组包括一第四群组,该第四群组中的快取单元是在一锁住状态,且该第四群组中是利用一第四快取连结表来代表该第四群组中快闪单元之间的连结关系;以及,当控制单元将该第二群组的数据写回该闪存时,该控制单元由该第二群组的该第二快取连结表中取出一第三快取单元,并改变该第三快取单元为该锁住状态且分配至该第四群组中的该第四快取连结表。
5.如权利要求4所述的固态储存装置,其中,该第四群组中的该第三快取单元已经写回完成后,改变该第三快取单元为该自由状态且分配至该第一群组中的该第一快取连结表。
6.如权利要求4所述的固态储存装置,其中,控制单元由该第三群组的该第三快取连结表中取出一第四快取单元,并改变该第四快取单元为该锁住状态并新增于该第四群组中的该第四快取连结表;以及,当该第四快取单元内已储存一完整页的数据后,改变该第四快取单元为该写入状态且分配至该第二群组中的该第二快取连结表。
7.如权利要求1所述的固态储存装置,其中,该第一群组中的快取单元是在一自由状态,该第二群组中的快取单元是在一读取状态,当该主机要求一读取数据时,该控制单元由该闪存产生该读取数据传递至该主机,并由该第一群组的该第一快取连结表中取出一第一快取单元来储存该读取数据,并改变该第一快取单元为该读取状态且分配至该第二群组中的该第二快取连结表。技术领域
本发明是有关于一种固态储存装置,且特别是有关于一种固态储存装置及其内部高速缓存(cachexa0memory)的管理方法。
背景技术
众所周知,固态储存装置(Solidxa0Statexa0Drive,SSD)使用与非门闪存(NANDxa0flashxa0memory)为主要存储组件,而此类的储存装置为一种非挥发性(non-volatile)的内存组件。也就是说,当数据写入闪存后,一旦系统电源关闭,数据仍保存在固态储存装置中。请参照图1,其所绘示为固态储存装置的示意图。固态储存装置10中包括一控制单元101、高速缓存(cachexa0memory)107与一闪存105。在固态储存装置10内部,控制单元101连接至闪存105与高速缓存107,以控制闪存105与高速缓存107的数据存取,控制单元101利用一外部总线20与主机(host)12之间进行指令与数据的传递。其中,外部总线20可为USB总线、IEEExa01394总线、PCIe总线或SATA总线等等。再者,闪存中105包括许多区块(block),而每个区块中又包括多个页(page)。例如,一个区块中有128页,而每个页的容量为8Kxa0bytes。再者,由于闪存105的特性,每次数据写入时是以页为最小单位,而每次抹除(erase)时则是以区块为单位进行数据抹除。一般来说,高速缓存107作为一个缓冲单元(bufferingxa0unit)以暂时地储存主机12输入的写入数据或者固态储存装置10输出的读取数据。当固态储存装置10未接受电源时,高速缓存107中的数据将被删除,而高速缓存107可为静态随机存取内存(SRAM)或动态随机存取内存(DRAM)。由于高速缓存107是作为闪存105的缓冲单元,因此控制单元101需要有效率地管理高速缓存107,并且保持高速缓存107与闪存105中数据的一致性。基本上,高速缓存107中包括复数个快取单元(cachexa0unit),每个快取单元皆对应一个地址,而控制单元101即是利用快取连结表(cachexa0linkxa0list)来管理快取单元。举例来说,图2所示为公知快取单元及其快取连结表示意图。其中,每个快取单元皆有一固定地址(A1~A8),而快取单元的数据(Data)储存容量为例如一个页的大小。在快取连结表中,会记录每个快取单元所连结的前一个(previous)快取单元的地址、下一个(next)快取单元的地址、本身快取单元的状态(status)、以及本身快取单元对应于闪存105内的逻辑分配地址(logicalxa0allocationxa0address,简称LAA)。再者,快取单元中的状态可区分为自由状态(freexa0state)、写入状态(writexa0state)、读取状态(readxa0state)、需填满状态(needxa0fill-upxa0state)、锁住状态(lockxa0state)。详细说明如下:当快取单元(例如地址A8与A1的快取单元)内未储存数据或者储存无效的数据时,快取单元即为自由状态,控制单元可用来暂存主机12所输出的写入数据或者闪存105所输出的读取数据。当快取单元(例如地址A3、A7的快取单元)暂时储存由主机12输出的一完整页的数据时,其状态即为写入状态,而此快取单元中的数据尚未写入闪存105,并且将会写入闪存105中P1、P4的逻辑配置地址内。当快取单元(例如地址A4的快取单元)暂时储存由主机12输出的部份页数据时,其状态即为需填满状态,而此部份页的数据尚未写入闪存105,并且将会经过处理后才能写入闪存105中P3逻辑配置地址内。当快取单元(例如地址A2、A6的快取单元)储存由闪存105输出的读取数据时,其状态即为读取状态,而此读取数据已经由闪存105中P2、P5的逻辑配置地址传递快取单元以及主机12。当快取单元(例如地址A5的快取单元)正在被控制单元101处理时,此快取单元即在锁住状态。也就是说,此时闪存中,P5逻辑配置地址内的数据正在处理中,暂时无法进行读取或写入。由以上的说明可知,公知固态储存装置10中,控制单元101是根据快取连结表来管理高速缓存107里的快取单元。也就是说,公知闪存是利用一个快取连结表,来将所有快取单元形成单一连结(link)。然而,利用单一连结会造成快闪储存装置的效率(performance)降低。举例来说,当控制单元101执行写回动作(writexa0backxa0action)时,会寻找具有写入状态的快闪单元,并将这些快闪单元内的数据根据逻辑配置地址(LAA)写回闪存。由于控制单元101仅利用单一快取连结表来管理快取单元,所以控制单元101仅能根据快取连结表由第一个快取单元依序寻找具有写入状态的快取单元,因此将会大大地降低控制单元101的效能。同理,当控制单元101欲寻找其它状态的快取单元时,还是必须由第一个快取单元开始依序寻找,因此也会降低控制单元101以及固态储存装置10的效能。
发明内容
本发明的目的在于提供一种固态储存装置,可以有效地提高控制单元的效率。为实现上述目的,本发明提供的固态储存装置,连接至一主机,其中,该固态储存装置包含:一闪存,该闪存中具有复数个区块,每一该区块中具有多个页;一高速缓存,包括复数个快取单元,一个或一个以上快取单元的大小等于闪存中的一个页的大小,该些快取单元是根据该些快取单元的状态被分配至复数个群组;其中,于一第一群组中是利用一第一快取连结表来代表该第一群组中快闪单元之间的连结关系;于一第二群组中是利用一第二快取连结表来代表该第二群组中快闪单元之间的连结关系;以及一控制单元,连接至该主机、该闪存与该高速缓存,该控制单元根据该主机产生的写入数据暂存于该高速缓存中以写入该闪存或者根据该主机的要求由该高速缓存中产生读取数据暂存于该高速缓存中以提供至该主机。所述的固态储存装置,其中,该第一群组中的快取单元是在一自由状态,该第二群组中的快取单元是在一写入状态,当该主机产生一完整页的数据时,该控制单元由该第一群组的该第一快取连结表中取出一第一快取单元来储存该完整页的数据,并改变该第一快取单元为该写入状态且分配至该第二群组中的该第二快取连结表。所述的固态储存装置,其中,该些群组包括一第三群组,该第三群组中的快取单元是在一需填满状态,且该第三群组中是利用一第三快取连结表来代表该第三群组中快闪单元之间的连结关系;以及,当该主机产生一个页内的部份数据时,该控制单元由该第一群组的该第一快取连结表中取出一第二快取单元来储存该一个页内的部份数据,并改变该第二快取单元为该需填满状态且分配至该第三群组中的一第三快取连结表。所述的固态储存装置,其中,该些群组包括一第四群组,该第四群组中的快取单元是在一锁住状态,且该第四群组中是利用一第四快取连结表来代表该第四群组中快闪单元之间的连结关系;以及,当控制单元将该第二群组的数据写回该闪存时,该控制单元由该第二群组的该第二快取连结表中取出一第三快取单元,并改变该第三快取单元为该锁住状态且分配至该第四群组中的该第四快取连结表。所述的固态储存装置,其中,该第四群组中的该第三快取单元已经写回完成后,改变该第三快取单元为该自由状态且分配至该第一群组中的该第一快取连结表。所述的固态储存装置,其中,控制单元由该第三群组的该第三快取连结表中取出一第四快取单元,并改变该第四快取单元为该锁住状态并新增于该第四群组中的该第四快取连结表;以及,当该第四快取单元内已储存一完整页的数据后,改变该第四快取单元为该写入状态且分配至该第二群组中的该第二快取连结表。所述的固态储存装置,其中,该第一群组中的快取单元是在一自由状态,该第二群组中的快取单元是在一读取状态,当该主机要求一读取数据时,该控制单元由该闪存产生该读取数据传递至该主机,并由该第一群组的该第一快取连结表中取出一第一快取单元来储存该读取数据,并改变该第一快取单元为该读取状态且分配至该第二群组中的该第二快取连结表。本发明提供的固态储存装置及其高速缓存的管理方法,是根据快取单元的状态,将快取单元区分为多个群组,每个群组皆有一快取连结表。换句话说,控制单元利用多个快取连结表来管理取内存中的快取单元,并且可以有效地提高控制单元的效率。
附图说明
图1所示为固态储存装置的示意图。图2所示为公知快取单元及其快取连结表示意图。图3所示为本发明固态储装置中高速缓存的多个快取连结表(multixa0cachexa0linkxa0lists)意图。图4A-图4H为介绍高速缓存的管理方法的一实施例。
具体实施方式
本发明提出的固态储存装置,连接至一主机,包含:闪存,该闪存中具有复数个区块,每一该区块中具有多个页;一高速缓存,包括复数个快取单元,一个或一个以上快取单元的组成等于闪存中的一个页的大小,该些快取单元是根据该些快取单元的状态被分配至复数个群组;其中,于一第一群组中是利用一第一快取连结表来代表该第一群组中快闪单元之间的连结关系;于一第二群组中是利用一第二快取连结表来代表该第二群组中快闪单元之间的连结关系;以及,一控制单元,连接至该主机、该闪存与该高速缓存,该控制单元根据该主机产生的写入数据暂存于该高速缓存中以写入该闪存或者根据该主机的要求由该高速缓存中产生读取数据暂存于该高速缓存中以提供至该主机。为了对本发明之上述及其它方面有更佳的了解,以文特举较佳实施例,并配合附图作详细说明如下:由于仅利用单一快取连结表来控制高速缓存会降低控制单元的效能。因此,本发明是根据快取单元的状态,将快取单元区分为多个群组,每个群组皆利用一快取连结表来进行管理。而控制单元利用多个快取连结表来管理取内存中的快取单元,即可有效地提高控制单元的效率。而为了说明上的方便,以下快取连结表中仅列出状态区位,并以箭头表示快取单元之间的连结关系。再者,固态储存装置的构造与图1相同,不再赘述。请参照图3,其所示为本发明固态储装置中高速缓存的多个快取连结表(multixa0cachexa0linkxa0lists)示意图。其中,高速缓存中包括复数个快取单元,一个或一个以上快取单元的组成等于闪存中的一个页的大小,而该些快取单元可根据状态区位被区分为多个群组,例如五个群组。控制单元可直接根据不同群组的特性来直接操作快取单元。根据本发明的实施例,第一群组<I>是由自由状态的快取单元(例如地址A8与A1的快取单元)组成,并以第一快取连结表来代表第一群组<I>中快取单元的连结关系。第二群组<II>是由锁住状态的快取单元(例如地址A5与A10的快取单元)组成,并以第二快取连结表来代表第二群组<II>中快取单元的连结关系。第三群组<III>是由写入状态的快取单元(例如地址A3与A7的快取单元)组成,并以第三快取连结表来代表第三群组<III>中快取单元的连结关系。第四群组<IV>是由需填满状态的快取单元(例如地址A4与A9的快取单元)组成,并以第四快取连结表来代表第四群组<IV>中快取单元的连结关系。第五群组<V>是由读取状态的快取单元(例如地址A2与A6的快取单元)组成,并以第五快取连结表来代表第五群组<V>中快取单元的连结关系。由图3可知,五个群组中共包括五个快取连结表,每个群组中的快取单元具有相同状态。因此,相较于公知单一快取连接表,控制单元不需要在所有的快取单元中去搜寻特定状态的快取单元,因此能够有效的提升控制单元的效能。为了能够更加显示本发明的优点,以图3五个群组的快取连结表为例,并利用图4A一图4H来介绍高速缓存的管理方法的一实施例,但并不限于此。首先,控制单元根据第二群组<II>中的第二快取连结表,依序处理锁住状态的快取单元。而处理完成后的快取单元(地址A5与A10的快取单元),则成为自由状态并且新增于第一群组<I>的第一快取连接表中,即如图4A所示。当快闪储存装置由主机接收一个完整页的数据时,控制单元会由第一群组<I>的第一快取连结表中取出一个自由状态的快取单元(地址A8的快取单元)来储存由主机输出的该完整页的数据,并且改变为写入状态。接着,将该快取单元(地址A8的快取单元)配置于第三群组<III>的第三快取连结表中,如图4B所示。当主机欲修改闪存中一个页内的部份数据时,控制单元会由第一群组<I>的第一快取连结表中取出一个自由状态的快取单元(地址A1的快取单元)来储存主机所输出之部份数据,并且改变为需填满状态。接着,将该快取单元(地址A1的快取单元)配置于第四群组<IV>的第四快取连结表中,如图4C所示。当主机读取高速缓存中一页的数据时,控制单元会由第一群组<I>的第一快取连结表中取出一个自由状态的快取单元(地址A5的快取单元)来储存由闪存输出的该页的数据,并且改变为读取状态。接着,将该快取单元(地址A5的快取单元)配置于第五群组<V>的第五快取连结表中,如图4D所示。当第一群组<I>中自由状态的快取单元数目太少时,控制单元可以取出第三群组<III>或者第五群组<V>中的快取单元(例如A3的快取单元与A2的快取单元)的状态改为锁住状态,并且移至第二群组<II>中并建立第二快取连结表,如图4E所示。接着,控制单元根据第二群组<II>中的第二快取连结表,依序处理锁住状态的快取单元。将地址A3的快取单元的数据写回(writexa0back)闪存中,而删除A2快取单元内的数据。而处理完成后的快取单元(地址A3与A2的快取单元),则成为自由状态并且新增于第一群组<I>的第一快取连接表,即如图4F所示。由于第四群组<IV>中的快取单元为需填满状态。也就是说,第四群组<IV>中的快取单元并非未储存一个完整页的数据,仅是储存部份的更新数据而已。因此,第四群组<IV>中的快取单元并无法直接写回高速缓存。必须由闪存中读取未更新部份的数据,并合并成一个完整页的数据后,才可写回闪存。所以,控制单元可以将第四群组<IV>中快取单元(例如A4的快取单元)的状态改为锁住状态,并且移至第二群组<II>中并建立第二快取连结表。接着,控制单元可读取闪存中相对应页中的未更新数据并储存于A4地址的快取单元内,使得A4的快取单元储存一个完整页的数据,如图4G所示。由于第二群组<II>中A4地址的快取单元已经储存一个完整页的资料,因此可以改为写入状态。接着,将该快取单元(地址A4的快取单元)配置于第三群组<III>的第三快取连结表中,如图4H所示。由以上的说明可知,图4A-图4H仅是本发明闪存管理方法中的一实施例,当然还有其它的变化。举例来说,由于自由状态以及读取状态的快取单元并不会改变到闪存内的数据一致性,因此在此领域的技术人员也可以将自由状态以及读取状态的快取单元集合成为一个群组,并且不会影响控制单元的效能。再者,上述第一群组至第五群组,第一快取连接表至第五快取连接表之间并没有先后次序之分,其仅是用来区别该些群组以及快取连接表为不同的群组以及快取连接表而已。本发明的优点在于根据快取单元的状态,将快取单元区分为多个群组,每个群组皆利用一快取连结表来进行管理。因此,而控制单元利用多个快取连结表来管理取内存中的快取单元。相较于公知仅利用单一快取连结表来控制高速缓存,本发明具有提高控制单元效率的优点。综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本领域技术人员在不脱离本发明的精神和范围内,当可作各种之更动与润饰。因此,本发明的保护范围应当以申请的权利要求范围所界定的内容为准。